package com.codedancer.campus.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.manager.service.bo.circle.CircleExamineBo;
import com.codedancer.campus.manager.service.bo.circle.CirclePageSearchBo;
import com.codedancer.campus.manager.service.vo.circle.CirclePageVo;
import com.codedancer.campus.manager.service.vo.circle.CircleVo;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface ICircleService {

    /**
     * 分页查询圈子
     * @param circlePageSearchBo
     * @return
     */
    IPage<CirclePageVo> page(CirclePageSearchBo circlePageSearchBo);

    /**
     * 启用圈子
     * @param uuid
     */
    void enable(String uuid);

    /**
     * 禁用圈子
     * @param uuid
     */
    void disable(String uuid);

    /**
     * 删除圈子
     * @param uuid
     */
    void delete(String uuid);

    /**
     * 导出圈子
     * @param request
     * @param response
     * @param circlePageSearchBo
     */
    void export(HttpServletRequest request, HttpServletResponse response, CirclePageSearchBo circlePageSearchBo);

    /**
     * 批量启用
     * @param uuids
     */
    void batchEnable(List<String> uuids);

    /**
     * 批量禁用
     * @param uuids
     */
    void batchDisable(List<String> uuids);

    /**
     * 批量删除
     * @param uuids
     */
    void batchDelete(List<String> uuids);

    /**
     * 通过审核
     * @param circleExamineBo
     */
    void pass(CircleExamineBo circleExamineBo);

    /**
     * 未通过审核
     * @param circleExamineBo
     */
    void noPass(CircleExamineBo circleExamineBo);

    /**
     * 获取圈子详情
     * @param uuid
     * @return
     */
    CircleVo detail(String uuid);
}
